home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / LANG / C / LIB / DESK / CORE / Desk / h / LinkList < prev    next >
Text File  |  1996-05-21  |  1KB  |  44 lines

  1.  
  2. #ifndef __Desk_LinkList_h
  3. #define __Desk_LinkList_h
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. #ifndef __Desk_Core_h
  8. #include "Desk.Core.h"
  9. #endif
  10. typedef struct Desk_linklist_header
  11. {
  12. struct Desk_linklist_header *next;
  13. struct Desk_linklist_header *previous;
  14. } Desk_linklist_header ;
  15. extern void Desk_LinkList_AddToHead(Desk_linklist_header *anchor, Desk_linklist_header *item);
  16. extern void Desk_LinkList_AddToTail(Desk_linklist_header *anchor, Desk_linklist_header *item);
  17. extern void Desk_LinkList_InsertBefore(Desk_linklist_header *anchor,
  18. Desk_linklist_header *pos,
  19. Desk_linklist_header *item);
  20. extern void Desk_LinkList_InsertAfter(Desk_linklist_header *anchor,
  21. Desk_linklist_header *pos,
  22. Desk_linklist_header *item);
  23. extern Desk_bool Desk_LinkList_InList(const Desk_linklist_header *anchor, const Desk_linklist_header *item);
  24. extern int Desk_LinkList_ListLength(const Desk_linklist_header *anchor);
  25. extern void Desk_LinkList_Unlink(Desk_linklist_header *anchor, Desk_linklist_header *item);
  26. #define Desk_LinkList_FirstItem(x) ((void *)(x)->next)
  27. #define Desk_LinkList_LastItem(x) ((void *)(x)->previous)
  28. #define Desk_LinkList_Init(x) \
  29. { \
  30. (x)->next = NULL; \
  31. (x)->previous = NULL; \
  32. }
  33. #define Desk_LinkList_InitItem(x) \
  34. { \
  35. (x)->next = NULL; \
  36. (x)->previous = NULL; \
  37. }
  38. #define Desk_LinkList_NextItem(x) ((void *) ((Desk_linklist_header *)(x))->next)
  39. #define Desk_LinkList_PreviousItem(x) ((void *) ((Desk_linklist_header *)(x))->previous)
  40. #ifdef __cplusplus
  41. }
  42. #endif
  43. #endif
  44.